package org.graduation.recruitment.config;

import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * OpenAPI 配置类用于定义API的基本信息和安全方案。
 */
@Configuration
public class OpenApiConfig {

    /**
     * 创建并配置OpenAPI实例，定义API的基本信息和安全认证方式。
     *
     * @return 返回配置好的OpenAPI实例。
     */
    @Bean
    public OpenAPI springDocOpenAPI() {
        return new OpenAPI()
                .components(new Components()
                        // 配置JWT认证方案
                        .addSecuritySchemes("openApiSecurityScheme", new SecurityScheme()
                                .type(SecurityScheme.Type.HTTP)
                                .bearerFormat("JWT")
                                .in(SecurityScheme.In.HEADER)
                                .name("Authorization")
                                .scheme("Bearer")))
                .info(new Info()
                        // 设置API的基本信息
                        .title("大学生智慧就业平台 API")
                        .description("大学生智慧就业平台 API")
                        .version("1.0.0"));
    }
}
